package Engine.RMI
{
    import Framework.Serialize.*;
    import flash.events.*;
    import mx.events.*;

    public class SRMIReturn extends Object implements IEventDispatcher
    {
        private var _1440013438messageId:int;
        private var _1545519860dispatchStatus:ERMIDispatchStatus;
        private var _147152236userKey:int;
        private var _168518995routerMap:Array;
        private var _bindingEventDispatcher:EventDispatcher;

        public function SRMIReturn()
        {
            this._bindingEventDispatcher = new EventDispatcher(IEventDispatcher(this));
            
        }

        public function __write(param1:SerializeStream) : void
        {
            param1.writeInt(this.messageId);
            this.dispatchStatus.__write(param1);
            param1.writeInt(this.userKey);
            SeqRouterMapHelper.write(param1, this.routerMap);
            
        }

        public function __read(param1:SerializeStream) : void
        {
            this.messageId = param1.readInt();
            this.dispatchStatus = ERMIDispatchStatus.__read(param1);
            this.userKey = param1.readInt();
            this.routerMap = SeqRouterMapHelper.read(param1);
            
        }

        public function get messageId() : int
        {
            return this._1440013438messageId;
        }

        public function set messageId(param1:int) : void
        {
            var _loc_2:* = this._1440013438messageId;
            if (_loc_2 !== param1)
            {
                this._1440013438messageId = param1;
                if (this.hasEventListener("propertyChange"))
                {
                    this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "messageId", _loc_2, param1));
                }
            }
            
        }

        public function get dispatchStatus() : ERMIDispatchStatus
        {
            return this._1545519860dispatchStatus;
        }

        public function set dispatchStatus(param1:ERMIDispatchStatus) : void
        {
            var _loc_2:* = this._1545519860dispatchStatus;
            if (_loc_2 !== param1)
            {
                this._1545519860dispatchStatus = param1;
                if (this.hasEventListener("propertyChange"))
                {
                    this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "dispatchStatus", _loc_2, param1));
                }
            }
            
        }

        public function get userKey() : int
        {
            return this._147152236userKey;
        }

        public function set userKey(param1:int) : void
        {
            var _loc_2:* = this._147152236userKey;
            if (_loc_2 !== param1)
            {
                this._147152236userKey = param1;
                if (this.hasEventListener("propertyChange"))
                {
                    this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "userKey", _loc_2, param1));
                }
            }
            
        }

        public function get routerMap() : Array
        {
            return this._168518995routerMap;
        }

        public function set routerMap(param1:Array) : void
        {
            var _loc_2:* = this._168518995routerMap;
            if (_loc_2 !== param1)
            {
                this._168518995routerMap = param1;
                if (this.hasEventListener("propertyChange"))
                {
                    this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "routerMap", _loc_2, param1));
                }
            }
            
        }

        public function addEventListener(param1:String, param2:Function, param3:Boolean = false, param4:int = 0, param5:Boolean = false) : void
        {
            this._bindingEventDispatcher.addEventListener(param1, param2, param3, param4, param5);
            
        }

        public function dispatchEvent(event:Event) : Boolean
        {
            return this._bindingEventDispatcher.dispatchEvent(event);
        }

        public function hasEventListener(param1:String) : Boolean
        {
            return this._bindingEventDispatcher.hasEventListener(param1);
        }

        public function removeEventListener(param1:String, param2:Function, param3:Boolean = false) : void
        {
            this._bindingEventDispatcher.removeEventListener(param1, param2, param3);
            
        }

        public function willTrigger(param1:String) : Boolean
        {
            return this._bindingEventDispatcher.willTrigger(param1);
        }

    }
}
